import axios from 'axios'
import { Message } from 'element-ui'
const service = axios.create({
  // 如果执行 npm run dev  值为 /api 正确  /api 这个代理只是给开发环境配置的代理
  baseURL: process.env.VUE_APP_BASE_API, // 设置axios请求的基础的基础地址
  timeout: 5000 // 定义5秒超时
})

// request interceptor
service.interceptors.request.use()

// response interceptor
service.interceptors.response.use(response => {
  //  因为response实际上多加了一层data
  const { success, message, data } = response.data
  if (success) {
    //  如果成功 表示业务执行成功 直接返回data
    return data
  } else {
    // 表示没有执行成功先弹出错误消息 再reject
    Message.error(message) // 先提示错误
    return Promise.reject(new Error(message))
  }
}, error => {
  // 提示失败
  Message.error(error.message) // 提示错误
  return Promise.reject(error) // 返回错误
  // $message 所有带$的属性都只能在组件中调用 因为这些属性都是Vue的原型方法
})

export default service
